package com.kwin.demo.server.framework.common.repeatsubmit.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * 防重复提交
 * @author kwin
 * @Date 2022/1/16 14:59
 **/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatSubmit {

    /**
     * 锁过期时间
     * @return
     */
    int timeout() default 5;

    /**
     * 加锁等待时间
     * @return
     */
    int waittime() default 0;

    /**
     * 锁过期时间单位
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

    /**
     * 锁的位置
     */
    String location() default "RepeatSubmit";

    /**
     * 参数位置
     */
    int argInx() default 0;

    /**
     * 参数名称
     */
    String argName() default "";
}
